package design_pattern.builder.demo02;

/**
 * @version 1.0.0
 * Created by cyd on 2022-06-15 15:01:59
 * @ClassName : design_pattern.builder.demo02.Example03
 * @Description : 类描述
 */
public class Main {

    public static void main(String[] args) {
        // 在使用MiPhone来构建的时候，我们已经知道会获得什么特性的Phone了，只是我们不想自己装配，于是交给建造者模式来装配
        Director director = new Director(new MiPhone());
        Phone miPhone = director.build();
        System.out.println(miPhone);
        System.out.println("---------------------");

        // 我们进一步看看构建的细节
        IPhone iPhoneNull = new IPhone();
        System.out.println(iPhoneNull);
        System.out.println("---------------------");
        // IPhone实例此时可以理解为单纯用来装配的标识，完成装配后才有意义
        Phone iphone = director.setBuilder(iPhoneNull).build();
        System.out.println(iphone);
        // 他们其实是一个对象
        System.out.println(iPhoneNull == iphone);
    }
}
